1. Field of the Invention
Embodiments of the present invention relate generally to graphics system architecture and more specifically to active raster composition and error checking in hardware.
2. Description of the Related Art
Typical computer systems include, with out limitation, a central processing unit (CPU), a graphics processing unit (GPU), at least one display device, and input devices, such as a keyboard and mouse. The display device generates a raster image for display from a sequential pixel stream generated by the GPU. The pixel stream may be represented in analog or digital form for transmission. Timing information embedded in the pixel steam enables the display device to synchronize the display output rasterization with the arrival time of input pixels. The timing information may include a vertical synchronization marker, used to indicate the start time of a complete raster image, and a horizontal synchronization marker, used to indicate the start time of a horizontal line within the raster image.
A span of blank time is typically inserted before and after a synchronization marker. For example, pixels on a horizontal line are blank (black) before and after a horizontal synchronization marker, and a number of completely blank lines are transmitted before and after a vertical synchronization marker. Cathode ray tube (CRT) display devices use this blank time for beam retrace, thereby avoiding retrace artifacts that diminish image quality on the display. Display devices that implement direct pixel access technology, such as liquid crystal display (LCD) and plasma display technologies, do not have the same blanking requirement because there is no need for retrace time. As a result, display devices built using direct pixel access technologies are beginning to reduce the amount of tolerated blanking time within an incoming pixel stream in order to reallocate the time to other purposes, such as increasing the bandwidth available for displayed pixels. Display devices that need no vertical blank lines are technically possible, using direct pixel access technologies, and offer optimal bandwidth for displayed pixels.
The raster image transmitted to the display device is customarily generated using a composite of multiple source images. For example, the raster image may include a background image and a cursor image. The raster image may also include one or more overlay images, such as a real-time video image. In order to composite and generate a raster image that is formed properly according to available system resources and user input, the GPU requires a number of configuration parameters to be set. The configuration parameters generally correspond to hardware registers used by the GPU to composite, process, and generate the raster image in real-time. The configuration parameters associated with raster image generation may represent a large amount of data and span multiple functional modules within the GPU.
When the user moves the mouse and changes the position of the cursor within the raster image, certain configuration parameters need to be updated to reflect the new position of the cursor in the raster composition process. When the user changes the size or position of a video playback window, the configuration parameters associated with the corresponding overlay need to be updated to reflect the new overlay configuration in the raster composition process. The computation of new parameters is performed by the GPU driver in response to user input and system resource availability. Each time any configuration parameters need to be changed, an interrupt is generated to the GPU driver executing within the CPU. The GPU driver then computes a new set of configuration parameters for transmission to the GPU. The new configuration parameters typically take effect after a new vertical synchronization mark is generated, allowing the CPU at least the vertical blank time to compute and transmit the new parameters.
As display technology advances and the amount of vertical blank time available to the CPU for computing new configuration parameters is diminished, a larger portion of overall CPU power needs to be consumed to computing new configuration parameters. The result is diminished overall system performance and, potentially, transient display artifacts that result from the CPU falling behind in performing GPU driver computations.
As the foregoing illustrates, what is needed in the art is a system that improves the performance of configuration parameter computation for raster composition.